package it.espsoft.easysuperenalotto.logic;

import it.espsoft.easysuperenalotto.bean.GiocataBean;
import it.espsoft.easysuperenalotto.dao.GiocataDAO;
import it.espsoft.easysuperenalotto.db.DB;
import it.espsoft.easysuperenalotto.R;

import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.GridView;

public class GestioneSestinaActivity extends Activity {
	private NumberGridAdapter ba = null;
	private OperazioneEnum operation;
	private Integer idGiocata = null;
	
	private void chiudiFinestra() {
		this.finish();
    }
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.addsestina);
        GridView gridview = (GridView) findViewById(R.id.gridViewNumbers);
        ba = new NumberGridAdapter(this);
        gridview.setAdapter(ba);
        
        DB.init(getApplicationContext());
        
        Bundle bundle = getIntent().getExtras();
        operation = OperazioneEnum.valueOf(bundle.getString("OPERATION"));
        idGiocata = bundle.getInt("IDGIOCATA");
        
        switch (operation){
        	case EDIT : populateViewForEdit(idGiocata);
        				break;
        	case ADD : break;
        }
        
        Button accept = (Button) findViewById(R.id.buttonAcceptGiocata);
        accept.setOnClickListener(new OnClickListener() {
		  public void onClick(View v) {
			if(ba.confermaGiocata(getApplicationContext())){
				if(operation == OperazioneEnum.ADD){
					GiocataDAO.insert(new GiocataBean(ba.getSelected(),ba.getSuperstar()));
				}else if(operation == OperazioneEnum.EDIT){
					GiocataBean gb = new GiocataBean(ba.getSelected(),ba.getSuperstar());
					gb.setId(idGiocata);
					GiocataDAO.update(gb);
				}
				chiudiFinestra();
			}
		  }

        });
        
        Button clear = (Button) findViewById(R.id.buttonClearGiocata);
        clear.setOnClickListener(new OnClickListener() {
		  public void onClick(View v) {
			  ba.azzeraGiocata();
		  }
        });
        
        Button back = (Button) findViewById(R.id.buttonBack);
        back.setOnClickListener(new OnClickListener() {
		  public void onClick(View v) {
			  chiudiFinestra();
		  }
        });
        
    }

	private void populateViewForEdit(int idGiocata) {
		GiocataBean giocata = GiocataDAO.getGiocata(idGiocata);
		if(giocata != null){
			ba.manageNumberSelection(Integer.parseInt(giocata.getPrimo()));
			ba.manageNumberSelection(Integer.parseInt(giocata.getSecondo()));
			ba.manageNumberSelection(Integer.parseInt(giocata.getTerzo()));
			ba.manageNumberSelection(Integer.parseInt(giocata.getQuarto()));
			ba.manageNumberSelection(Integer.parseInt(giocata.getQuinto()));
			ba.manageNumberSelection(Integer.parseInt(giocata.getSesto()));
			ba.manageSuperstarSelection(giocata.getSuperstar()==null || "".equals(giocata.getSuperstar()) ? -1 : Integer.parseInt(giocata.getSuperstar()));
			
		}
	}

	@Override
	public void onConfigurationChanged(Configuration newConfig) {
		super.onConfigurationChanged(newConfig);
		ba.resetButtons();
	}
	
	
}